package vista;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.*;

import controlador.Controlador;


public class MenuJuego extends JFrame{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JMenuBar barraMenu;
	private JMenu archivoMenu;
	private JMenuItem archivoItem;
	private JScrollPane scroll;
	private ImagenScrollable picture;
	
	public MenuJuego(){
		super("Program And Conquer III");
		this.setLayout(null);
		this.setSize(805,650);
		this.setResizable(false);
		this.addWindowListener(new CloseListener());
		
		// Seteo el menu de Archivo
		
		barraMenu = new JMenuBar();
		archivoMenu = new JMenu("Archivo");
		archivoMenu.setMnemonic(KeyEvent.VK_A);
		archivoMenu.getAccessibleContext().setAccessibleDescription(
        "Menu Archivo");
		barraMenu.add(archivoMenu);
		
		// Seteo lo que esta adentro
		
		archivoItem = new JMenuItem("Salir",
		                KeyEvent.VK_S);
		archivoItem.getAccessibleContext().setAccessibleDescription(
		"Volver al Menu Principal");
		archivoMenu.add(archivoItem);
		archivoItem.addActionListener(this.getListenerSalir());

		// Pongo la barra de Menu en la Ventana
		
		this.setJMenuBar(barraMenu);
		
//		 Seteo el panel y la ventana
		
		ImageIcon mapa = createImageIcon("Mapa Tp3beta2.jpg");
		picture = new ImagenScrollable(mapa,1);
		scroll = new JScrollPane(picture);
		scroll.setPreferredSize(new Dimension(800, 600));
		scroll.setBounds(0,0,800,600);
        scroll.setViewportBorder(
                BorderFactory.createLineBorder(Color.black));
    	scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    	scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        this.add(scroll);
        this.setVisible(true);
        
        // Pruebo poner un panelcito de region
        
        Controlador controlador = new Controlador();
		PanelRegion region1 = new PanelRegion(90,100,controlador, "Malabia");
        picture.add(region1);
        
	}
	
	
	private ActionListener getListenerSalir() {
		return new EscuchaMenuSalir();
	}
	
	private class EscuchaMenuSalir implements ActionListener {
		public void actionPerformed (ActionEvent e){
			removeAll();
			setVisible(false);
		}
	}


	public static class CloseListener extends WindowAdapter
	{	public void windowClosing(WindowEvent e)
		{	e.getWindow().setVisible(false);
			System.exit(0);
		}
	}
	
	protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = MenuJuego.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }


}
